<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Navigaror</title>
    <script>
        /*
        Navigator 对象
        Navigator 对象包含有关浏览器的信息。
        注释：没有应用于 navigator 对象的公开标准，不过所有浏览器都支持该对象。
        Navigator 对象的实例是唯一的，可以用 Window 对象的 navigator 属性来引用它。
        */
        
        /*
        Navigator 对象属性
        属性	描述
        appCodeName	返回浏览器的代码名。
        appMinorVersion	返回浏览器的次级版本。
        appName	返回浏览器的名称。
        appVersion	返回浏览器的平台和版本信息。
        browserLanguage	返回当前浏览器的语言。
        cookieEnabled	返回指明浏览器中是否启用 cookie 的布尔值。
        cpuClass	返回浏览器系统的 CPU 等级。
        onLine	返回指明系统是否处于脱机模式的布尔值。
        platform	返回运行浏览器的操作系统平台。
        systemLanguage	返回 OS 使用的默认语言。
        userAgent	返回由客户机发送服务器的 user-agent 头部的值。
        userLanguage	返回 OS 的自然语言设置。
        */

        /*
        appCodeName 属性是一个只读字符串，声明了浏览器的代码名。
        在所有以 Netscape 代码为基础的浏览器中，它的值是 "Mozilla"。为了兼容起见，
        在 Microsoft 的浏览器中，它的值也是 "Mozilla"。
        */ 
        function testAppCodeName(){
            document.write("<p>CodeName: ")
            document.write(navigator.appCodeName + "</p>")
        }
        
        /*
        userAgent 属性是一个只读的字符串，声明了浏览器用于 HTTP 请求的用户代理头的值。
        一般来讲，它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。
        例如：Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。
        注：用户代理头：user-agent header。
        */
        function testUserAgent(){
            document.write("<p>UserAgent: ")
            document.write(navigator.userAgent + "</p>")
        }
        
        /*
        cookieEnabled 属性可返回一个布尔值，如果浏览器启用了 cookie，该属性值为 true。
        如果禁用了 cookie，则值为 false。
        */
        function testCookiesEnable(){
            document.write("<p>CookieEnabled: ")
            document.write(navigator.cookieEnabled + "</p>")
        }
        
        /*
        警告：来自 navigator 对象的信息具有误导性，不应该被用于检测浏览器版本，这是因为：
        navigator 数据可被浏览器使用者更改
        浏览器无法报告晚于浏览器发布的新操作系统
        */

    </script>
</head>
<body>
    <button onclick="testAppCodeName()">测试appCodeName</button>
    <button onclick="testUserAgent()">测试userAgent</button>
    <button onclick="testCookiesEnable()">测试cookies Enable</button>
</body>
</html>